The present invention relates generally to transforming a document into a movie, and more particularly, to a method and system for transforming slides for a slide show presentation into movie data and saving the movie data in a movie file for display as a movie by any program capable of playing the movie file.
Computer application programs often have associated data files that are processed by the programs during their normal execution. A data file can contain information that is processed and presented to a user either in a video presentation or an audio presentation, or a combination of video and audio. A presentation program is one example of a computer application program that processes an associated data file for displaying a visual/audio presentation to the user.
Presentation programs enable a user to create, edit, manage, and perform xe2x80x9cpresentationsxe2x80x9d such as a xe2x80x9cslide showxe2x80x9d with a computer. One example of a popular presentation program is xe2x80x9cPowerPoint, xe2x80x9d available from the xe2x80x9cMicrosoft Corporation,xe2x80x9d of Redmond, Wash. A slide show presentation includes a set of electronic xe2x80x9cslides,xe2x80x9d each slide corresponding to one screen or page of output. An electronic slide may also be converted to a 35 mm or overhead transparency and displayed in a standard slide projector or overhead projector. Each slide contains one or more objects, such as text, graphical images, or graphic automation. A slide may also include sound and video objects that are played when the slide is displayed during a xe2x80x9cslide showxe2x80x9d performance.
A presentation program xe2x80x9cperformsxe2x80x9d a slide show by sequentially displaying a series of slides contained within the slide show presentation. The slides are displayed on a computer screen or projected onto a separate surface. A xe2x80x9cpresenterxe2x80x9d controls the presentation of the slide show by invoking a command that may xe2x80x9cadvancexe2x80x9d to the next slide in the slide show or xe2x80x9creturnxe2x80x9d to the previous slide. Other commands may cause the presentation to jump to a given slide (out of order) and/or play a sound. The commands may be customized so that the slide show is interactive with the user/presenter, e.g., a mouse click may be customized to animate a displayed object, play an audio sample or jump to another slide in the slide show presentation. Also, the commands may be entered with different types of user interface devices such as a keyboard, mouse, or touch screen display. It is envisioned that the presentation of the slide show can be viewed solely by the presenter or displayed for a larger audience.
Alternatively, a slide show presentation author may include slide xe2x80x9ctimingsxe2x80x9d with each slide in the slide show. A slide timing corresponds to a slide and indicates the number of seconds that the slide will be displayed before the presentation program automatically advances to the next slide in the slide show. The slide show presentation will automatically advance to the next slide in the slide show when the existing slide""s timing ends. The ordered sequence for presenting slides and xe2x80x9ceventsxe2x80x9d on those slides is predetermined by a slide show presentation author. Also, during a presentation of a slide show, the presenter may enter commands that alter the sequence for displaying the slides or cause different events to occur.
Typically, a presentation program enables a user to save a slide show in an associated slide presentation file, so that the slide show can be recreated at another location that has access to the presentation program and the slide presentation file. Unfortunately, a presentation program such as xe2x80x9cPowerPointxe2x80x9d is not common place and many computer users do not have access to this type of application program. In the past, slide presentation files were often distributed on a storage medium that also contained at least a display only version of the presentation program for graphically displaying the slide show to a user with the information stored in the slide presentation file. Since there is limited space available on a contemporary storage medium that is intended for mass distribution, the number and size of slide presentation files that can economically be distributed in this manner is presently limited. Additionally, since a slide show included in a slide presentation file must be displayed with some version of a presentation program, extra effort is required to locate, purchase and install the program before the slide show can be graphically displayed to other users, if not previously installed.
Typically, a presentation program, such as xe2x80x9cPowerPoint,xe2x80x9d is used to create and save a slide show presentation in a file format that is proprietary to the program. Since only another application program that recognizes the file format of the presentation program can edit and/or view the slide show presentation, the presentation program must be installed on a computer before the slide show may be viewed.
Although many computers do not have a presentation program, almost every personal computer in use has at least one application program such as a browser that includes a facility for playing a movie file. The browser may be a stand alone application program such as xe2x80x9cInternet Explorerxe2x80x9d or the browser""s functionality may be integrated into a computer operating system, e.g., the xe2x80x9cWindows 98xe2x80x9d operating system available from the xe2x80x9cMicrosoft Corporation.xe2x80x9d Examples of standard movie file formats include xe2x80x9cVideo for Windowsxe2x80x9d (xe2x80x9c.avixe2x80x9d files), available from xe2x80x9cMicrosoft Corporationxe2x80x9d of Redmond, Washington, and xe2x80x9cQuickTimexe2x80x9d (xe2x80x9c.qtmxe2x80x9d, xe2x80x9c.movxe2x80x9d or xe2x80x9cMooVxe2x80x9d files) available from xe2x80x9cApple Computer, Inc.xe2x80x9d Therefore, it is desirable to save the presentation of slides in a slide show as movie data in a movie file so that a movie of the slide show presentation may be displayed with any widely available application program capable of playing the movie file. It is also desirable to enable the user to edit/enhance the movie data generated from the slide show presentation.
The present invention is directed to a method, system and computer-readable medium for generating a movie file from a slide show presentation created with a presentation program. When the movie file is played, a movie of the slide show presentation is displayed. The slide show presentation is selected for saving as movie data in the movie file. Each type of object in the slide show presentation is identified and automatically transformed into the corresponding movie data.
In accordance with other aspects of this invention, the objects of the slide show presentation may be copied into the movie file. In this way, an application program that recognizes the objects of the slide show presentation in the movie file may be employed to open the file and produce the presentation.
In accordance with further aspects of the invention, the contents of the movie may be selected for compression. The user may select the type of compression method and optimization of the compression method.
In accordance with still further aspects of the invention, a movie application programming interface (API) such as xe2x80x9cQuickTimexe2x80x9d and xe2x80x9cVideo for Windowsxe2x80x9d may be selected to save the movie data in the movie file. File attributes (e.g., type or extension such as xe2x80x9c.qtmxe2x80x9d, xe2x80x9c.movxe2x80x9d, xe2x80x9c.avixe2x80x9d or xe2x80x9cMooVxe2x80x9d) may be set on the movie file. Also, the type of the file extension attribute may be selected to indicate the format of the movie data in the movie file.
In accordance with yet other aspects of the invention, the movie data further comprises slide video samples that are disposed on a video track contained in a video media. The slide video samples correspond to a plurality of slides in the slide show presentation. The disposition of the slide video samples at positions on the video track are referenced to the presentation of the corresponding slides in the slide show presentation. A transition video sample is provided that corresponds to a transition between slides in the slide show presentation. Effect samples reside in the video media and are referenced from the same video track that references slide images. References to effect source samples are disposed on separate effect source tracks at the same time position as the corresponding effect sample reference. The transition video sample is referenced to a position on the video track that is disposed between a pair of slide video sample references that correspond to the order of a pair of slides in the slide show presentation that are disposed on opposite sides of the transition. The video media is a container for video data, the video data including the slide video sample, the transition video sample, effect source samples, the video track and the other video track. There may be multiple types of media, e.g., video, sound and sprite, stored in the movie file. Also, a reference may be disposed on the video track that points to a video sample residing in the video media.
In accordance with further aspects of the invention, the movie API provides for editing the movie data. The movie API may be employed to generate the movie data necessary to produce/call up a video effect including fade, wipe, move, swivel and spiral. Also, the movie API may be employed to select the key frame rate for the video sample, as well as other movie format specific parameters.
In accordance with further aspects of the invention, the user may select the number of colors to be used for an image in the video sample. Also, the user may select a size and a position of a display for playing back the movie in a display window. Additionally, the user may select a type of format for the contents of the movie file.
In accordance with yet other aspects of the invention, the user may select a default time period for playing back the video samples that correspond to the slides in the slide show presentation. The user may also select all of the Graphic Interchange Animation (GIF) format objects in the presentation to be transformed into video data. Additionally, the user may select a type of transformation method for generating video samples, including sprite-based, frame-based, and vector graphic-based. The transformation method may also be automatically determined based on the characteristics of the objects in the slide show presentation.
In accordance with yet other aspects of the invention, the movie data saved by the movie API may include audio samples disposed on an audio track that is contained in an audio media. Also, a reference may be disposed on the audio track that points to an audio sample residing in the audio media. The audio samples correspond to sounds produced for slides and transitions by the slide show presentation. A slide audio sample reference is disposed at a position on the audio track referenced to the corresponding sound produced for the slide by the slide show presentation. The transition audio sample corresponds to sound produced for a transition between slides by the slide show presentation. The transition audio sample reference is disposed at a position on another audio track referenced to the corresponding sound produced for the transition in the slide show presentation. The transition audio sample reference is also referenced to another position on the audio track between the slide audio samples that correspond to the slides in the slide show presentation that are disposed on opposite sides of the transition. The audio media is a container for audio data, including the slide audio samples, the transition audio samples, the audio track and the other audio track. The movie API may also provide functions such as an editor for editing the audio data.
In accordance with yet other aspects of the invention, the audio sample associated with a slide may include a slide narration sound sample, transition audio sample and a background sound sample.